// !@#$McCaBe-InStRuMeNtAtIoN$#@!
// Instrumented with the McCabe Java Parser
// Version: 8.1.0.1 - 20110309
// Using Path Vector Instrumentation
// Date: Sun Apr 01 2012 20:37:47
package Driver;

import Service.InputManager;
import Service.OutputManager;

import com.mccabe.*;


class Driver_0b42f0ce0ea58935e9438bcd6199cf30 {
    static java.lang.Object info[];
    static {
        info = new java.lang.Object[2];
        info[0] = new Integer(-1);
        info[1] = new String("R:\\yu\\Concordia\\SOEN 344 Design II\\Term Assignment\\Code Repo\\trunk\\Iteration 3\\ERS\\src\\Driver\\Driver.java");
    }
}


public class Driver 
{

	/**
	 *    W E L C O M E
	 * 
	 *  --> E N T R Y  <---
	 *  --> P O I N T  <---
	 *  
	 *    W E L C O M E
	 *    
	 * @param args Not used.
	 */
	public static void main(String args[])
	{
int _mcFreq_bf44229b6774daf829acb89d0d909a07[] = new int[7];
PathVec_ERS_Iter3.enterMethod(Driver_0b42f0ce0ea58935e9438bcd6199cf30.info,0,_mcFreq_bf44229b6774daf829acb89d0d909a07,0);

		// Greet the user
		OutputManager.println("ERS SERVER Iteration 3 Launched.");
		OutputManager.println("Built by Yury Kitaev");
		
		// Load the data from the database (emulated)
		Facade.initializeAll();
		
		OperationStrategy strategy = null;
		
		int choice = 0;
		while (
PathVec_ERS_Iter3.decision(Driver_0b42f0ce0ea58935e9438bcd6199cf30.info,0,_mcFreq_bf44229b6774daf829acb89d0d909a07,1,2,
PathVec_ERS_Iter3.testCondition(choice != 3
))
)
		{
			OutputManager.offerChoiceMenu("*** MAIN MENU ***\nChoose Operation Mode.", "Manual", "Multithreading Automatied Testing", "Quit");
			
			choice = InputManager.readInput(1, 3);
		
			if (
PathVec_ERS_Iter3.decision(Driver_0b42f0ce0ea58935e9438bcd6199cf30.info,0,_mcFreq_bf44229b6774daf829acb89d0d909a07,3,4,
PathVec_ERS_Iter3.testCondition(1 == choice
))
)
			{
				strategy = new ManualOperationStrategy();
				strategy.run();
			}
			else if (
PathVec_ERS_Iter3.decision(Driver_0b42f0ce0ea58935e9438bcd6199cf30.info,0,_mcFreq_bf44229b6774daf829acb89d0d909a07,5,6,
PathVec_ERS_Iter3.testCondition(2 == choice
))
)
			{
				strategy = new MultithreadingTestOperationStrategy();
				strategy.run();
			}
		}
		
		OutputManager.println("\nProgram terminated.");
	}
}
